@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% == 0 (
    echo [INFO] 已获取管理员权限
) else (
    echo [ERROR] 请以管理员身份运行此脚本
    echo [INFO] 右键点击脚本，选择"以管理员身份运行"
    pause
    exit /b 1
)

:: 检查 Docker 是否运行
docker info >nul 2>&1
if %errorLevel% == 0 (
    echo [INFO] Docker 服务正在运行
) else (
    echo [WARN] Docker 服务未运行，正在尝试启动...
    net start com.docker.service
    timeout /t 10 /nobreak >nul
)

:: 备份当前配置
if exist "server\config.json" (
    echo [INFO] 备份当前配置...
    copy "server\config.json" "server\config.json.bak"
)

:: 停止当前容器
echo [INFO] 停止当前运行的容器...
docker-compose stop

:: 更新配置文件
echo [INFO] 更新配置文件...
set "MYSQL_ROOT_PASSWORD=123456"
set "MYSQL_DATABASE=admin_app"
set "MSSQL_SA_PASSWORD=YourStrong@Passw0rd"

:: 创建新的配置文件
(
    echo {
    echo   "databaseType": "sqlite",
    echo   "databaseConfig": {
    echo     "sqlite": {
    echo       "storage": "./database.sqlite"
    echo     },
    echo     "mysql": {
    echo       "host": "mysql",
    echo       "port": 3306,
    echo       "username": "root",
    echo       "password": "%MYSQL_ROOT_PASSWORD%",
    echo       "database": "%MYSQL_DATABASE%"
    echo     },
    echo     "sqlserver": {
    echo       "server": "sqlserver",
    echo       "port": 1433,
    echo       "user": "sa",
    echo       "password": "%MSSQL_SA_PASSWORD%",
    echo       "database": "admin_app"
    echo     }
    echo   }
    echo }
) > server\config.json

:: 重新构建镜像
echo [INFO] 重新构建镜像...
docker-compose build --no-cache

:: 启动更新后的容器
echo [INFO] 启动更新后的容器...
docker-compose up -d

:: 显示容器状态
echo.
echo [INFO] 容器状态：
docker-compose ps

:: 等待服务就绪
echo.
echo [INFO] 等待服务就绪...
timeout /t 10 /nobreak >nul

:: 显示日志
echo.
echo [INFO] 应用日志：
docker-compose logs -f app

:: 清理不再使用的镜像
echo [INFO] 清理旧镜像...
docker image prune -f

endlocal 